/**
 * @Description: 项目公共js
 * @Author: ZhiNan
 * @Date: 2023-04-11 15:01
 * @Version: 1.0
 */

/**
 * 发送ajax请求的封装
 * @param obj 若调用方法不指定参数 将会使用默认的defaultObj参数
 */
function ajaxGetData(obj) {
    let defaultObj = {  //默认参数
        url: null,
        params: {},
        type: 'get',
        dataType: 'json',
        callback: null,
        failCallback: null
    }
    for (let i in obj) {
        defaultObj[i] = obj[i];
    }
    $.ajax({
        url: defaultObj.url,
        data: defaultObj.params,
        type: defaultObj.type,
        dataType: defaultObj.dataType,
        cache: false,
        success: function (data) {
            defaultObj.callback(data);
        },
        error: function (data) {
            defaultObj.failCallback(data);
        }
    })
}

/**
 * 封装的ajax的get请求
 * @param url  路径
 * @param data 参数
 * @param callback 成功的回调函数
 * @param failCallback 失败时的回调函数
 */
function defaultGet(url, data, callback, failCallback) {
    const dataObj = {
        url: url,
        type: 'get',
        params: data,
        callback: function (result) {
            callback(result);
        },
        failCallback: function (err) {
            failCallback(err)
        }
    }
    ajaxGetData(dataObj)
}

/**
 * 封装的ajax的post请求
 * @param url  路径
 * @param data 参数
 * @param callback 成功的回调函数
 * @param failCallback 失败时的回调函数
 */
function defaultPost(url, data, callback, failCallback) {
    const dataObj = {
        url: url,
        type: 'post',
        params: data,
        callback: function (result) {
            callback(result);
        },
        failCallback: function (err) {
            failCallback(err)
        }
    }
    ajaxGetData(dataObj)
}